/**
 * Data:
 * Author: Aren
 * Description： 异步组件加载loading效果
 */


/**
 const AsyncComponent = () => ({
  // 需要加载的组件 (应该是一个 `Promise` 对象)
  component: import('./MyComponent.vue'),
  // 异步组件加载时使用的组件
  loading: LoadingComponent,
  // 加载失败时使用的组件
  error: ErrorComponent,
  // 展示加载时组件的延时时间。默认值是 200 (毫秒)
  delay: 200,
  // 如果提供了超时时间且组件加载也超时了，
  // 则使用加载失败时使用的组件。默认值是：`Infinity`
  timeout: 3000
})
 */

import loadingComponent from '../components/loading'
export const loadable = (asyncFactory) => {
    const component = (resolve) => {
        return {
            component: asyncFactory(), // 切换的时候采用的插件
            loading: loadingComponent //loading时使用的组件
        }
    }
    return { // loadable执行完成后返回一个组件
        render(h) {
            return h(component)
        }
    }
}
